Method, apparatus and system for supporting multiple collaborative sessions in a bi-directional communication device

ABSTRACT

A method, apparatus and system for supporting multiple diagnostic sessions include receiving multiple diagnostic session requests, verifying identification information for each requester, establishing a communications channel for each verified requester, and communicating the requested information to all of the verified requesters via the established communications channels.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit, under 35 U.S.C. § 365 ofInternational Application PCT/US03/11239, filed Apr. 10, 2003, which waspublished in accordance with PCT Article 21(2) on Oct. 30, 2003 inEnglish and which claims the benefit of U.S. Provisional ApplicationSer. No. 60/372,913, filed Apr. 16, 2002, which is incorporated hereinby reference in its entirety.

FIELD OF THE INVENTION

This invention relates to the field of bi-directional communicationsystems and, more specifically, to the simultaneous support of multiplesessions in a network device of a bidirectional communication system.

BACKGROUND OF THE INVENTION

A Telnet server makes the Internet Protocol (IP) address of a Telnetclient accessible to applications by writing the IP address into deviceassociated space initialized when the virtual device at the server isassociated with the physical device at the client. Applications retrievethis device IP address using an application program interface, and arethus enabled to do job routing, printer pass-thru, access control and soforth using TCP/IP networks.

At the host end of the system, the Telnet server is coupled to thenetwork via a transmission control protocol/internet protocol (TCP/IP)process, which provides information transport services; while at eachTelnet client site a client is coupled to the network via a similarTCP/IP process. The Telnet server functions to note requests forspecified services from Telnet clients and to service those requests. Aplurality of application programs are provided at the host installation,and appropriate ones of these programs are selectively coupled to theTelnet server in response to Telnet client requests.

The procedure in which a point-to-point link is established andinformation is exchanged between a host application and a Telnet clientapplication is termed a session, and a session typically commences bythe generation of a service request by a Telnet client at a clientworkstation. In response to the receipt of a request for service, theTelnet server establishes a memory structure using host system memoryfor controlling the service procedure and for retrieving, storing andforwarding information pertaining to the request for service.

Typically, an authentication routine is initially called to determinewhether the Telnet client requester is authorized to participate in therequested service, with the routine typically providing the client userID and password at the client workstation which is then checked by theTelnet server at the host installation using an authenticationapplication program routine. After the requester has been cleared by theauthentication routine, the service requested is carried out inconjunction with the appropriate one or more application programs. Oncethe service is completed, the session is terminated.

Multiple Service Operators (MSO) often need to get operating informationon networked devices, such as deployed cable modems and customerpremises equipment, for testing, diagnosis, and troubleshooting. Tofacilitate diagnostic analysis and information transfer, many MediaTerminal Adaptor (MTA) vendors have implemented Telnet servers on theirproducts (e.g., Voice over IP enabled cable modems and other networkdevices). The MTA Telnet servers can provide run time and long-termoperating information to requesters. A limitation of the Telnet servers,though, is that they currently only support one Telnet session at atime, which limits the diagnostic collaboration between multiple vendorparties.

SUMMARY OF THE INVENTION

The disadvantages heretofore associated with the prior art, are overcomeby the present invention of a method and apparatus for supportingmultiple Telnet sessions.

In one embodiment of the present invention a method includes receivingmultiple Telnet session requests, verifying identification informationfor each requester, establishing a communications channel for eachverified requester, and communicating the requested information to allof the verified requesters via the established communications channels.

BRIEF DESCRIPTION OF THE DRAWINGS

The principles of the present invention can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 depicts a high level block diagram of a communications networkincluding an embodiment of the present invention;

FIG. 2 depicts a high level block diagram of an embodiment of a modem ofthe present invention suitable for use in the network system of FIG. 1;

FIG. 3 depicts a flow diagram of an authentication method for providingmultiple Telnet sessions simultaneously, in accordance with theprinciples of the present invention; and

FIG. 4 depicts a flow diagram of a sending method for providing multipleTelnet sessions simultaneously, in accordance with the principles of thepresent invention.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will be described within the context of a cablemodem implementing Telnet server technology. However, it will beappreciated by those skilled in the relevant art that the presentinvention may also be implemented by various other network devices usingcommunication sessions to diagnose, initialize, provision, and otherwisecommunicate with a network server. Thus, it is contemplated by theinventors that the present invention has broad applicability beyond theMTA described herein. In a preferred embodiment, the present inventionadvantageously provides a method and apparatus for a Telnet serversupporting multiple sessions.

FIG. 1 depicts a high level block diagram of a communications networkincluding an embodiment of the present invention. The communicationsnetwork 100 of FIG. 1 comprises a subscriber terminal (illustratively apersonal computer (PC)) 110, which communicates with a modem 120, whichcommunicates with a data service system (illustratively aInternet/Intranet service system (ISS)) 130, which communicates withremote Internet and Intranet systems 140, 150 via an interconnectnetwork 160. The ISS 130 provides Internet or Intranet service to itssubscriber sites (e.g., subscriber terminal 110) via the modem 120.Subscribers connect to the ISS 130 from their terminals (e.g., personalcomputers, Macintoshes, Web terminals and the like, typically includingmemory, processing and input/output functionality) via the interconnectnetwork 160.

The ISS 130 comprises content servers (not shown) that store data foraccess from the subscriber terminals. The content servers supportservers for Internet applications, such as electronic mail, bulletinboards, news groups, and World Wide Web access. In addition, the ISS 130comprises web proxy servers (not shown) that allow a networkadministrator to restrict access to the remote Internet systems 140 orremote Intranet systems 150. Another use of the proxy servers is tocache frequently accessed data from the Internet. The ISS 130 alsocomprises address assignment servers (not shown). The address assignmentservers assign an address to the subscriber terminal 110 when it isfirst connected to the ISS 130. The assigned address uniquely identifiesthe subscriber terminal 110 in the ISS 130.

The ISS 130 employs the Internet Protocol (IP) for data communication toand from various servers, as well as with the remote systems 140 and150. The Transmission Control Protocol (TCP) operates above the IP layerand ensures reliable delivery of information to the content servers inthe ISS 130 and the remote systems 140 and 150. The applicationprotocols that operate above the TCP layer are specific to theapplications being accessed by the subscriber terminal 110. For example,the File Transfer Protocol (FTP) is used for file transfers and theHyper Text Transport Protocol (HTTP) is used for web accesses. Each ofthe remote Internet systems 140 and/or each of the remote Intranetsystems 150 typically include the same or similar servers and modules asthose described above for the ISS 130.

The communications network of FIG. 1 illustratively further includes aTelnet client 170 in the PC 110, a Telnet client 180 in the ISS 130 anda Telnet server 190 in the modem 120. One exemplary function of theTelnet server 190 within the modem 120 is to initiate a plurality ofdiagnostic tests to detect a fault within the network system and providea requesting client(s) 170, 180 with run time and long-term operatinginformation upon receiving a diagnostic request. The Telnet clients 170,180 in the PC 110 and the ISS 130, respectively and the Telnet server190 in the modem 120 operatively communicate according to the Telnetlogon protocol.

FIG. 2 depicts a high level block diagram of an exemplary embodiment ofa modem 120 comprising a diagnostic Telnet server 170, in accordancewith the principles of the present invention, suitable for use in thenetwork system 100 of FIG. 1. The modem 120 of FIG. 2 comprises aprocessor 210 as well as a memory 220 for storing control programs andinformation. The memory 220 of the modem 120 further comprises theTelnet server 190 including a web server 222 and a diagnostic engine224, the function of which are described below. The processor 210cooperates with conventional support circuitry 230 such as powersupplies, clock circuits, cache memory and the like as well as circuitsthat assist in executing the software routines stored in the memory 220.As such, it is contemplated that some of the process steps discussedherein as software processes may be implemented within hardware, forexample, as circuitry that cooperates with the processor 210 to performvarious steps. The modem 120 also contains input-output circuitry 240that forms an interface between the various functional elementscommunicating with the modem 120. For example, in the embodiment of FIG.1, the modem 120 communicates with the subscriber terminal 110 via asignal path S1 and with the ISS 130 via signal path S2.

Although the modem 120 of FIG. 2 is depicted as a general purposecomputer that is programmed to perform various control functions inaccordance with the present invention, the invention can be implementedin hardware, for example, as an application specified integrated circuit(ASIC). As such, the process steps described herein are intended to bebroadly interpreted as being equivalently performed by software,hardware, or a combination thereof. Furthermore, although the Telnetserver 190 of FIG. 2 is depicted as being located within the memory 220of the modem 120, the Telnet server 190 may be located outside of thememory 220 of the modem 120, or may comprise a separate component incommunication with the cable modem 120, in accordance with theprinciples of the present invention.

The web server 222 is implemented using known web server technologies.For example, in one embodiment, the web server 222 is implemented usingthe web server technology developed by Netscape CommunicationsCorporation of Mountain View, Calif. In another embodiment, the webserver 222 is implemented using the web server technology developed byMicrosoft Corporation of Redmond, Wash.

Referring to FIG. 1, when a diagnostic request from the Telnet client170 in the PC 110 or the Telnet client 180 in the ISS 130 iscommunicated to the Telnet server 190 in the modem 120, the web server222 in the Telnet server 190 of the modem 120 decodes the diagnosticrequest. The web server 222 then parses and packages the data containedin the diagnostic request. That is, the web server 222 puts the decodedrequest in the proper data structure (e.g., the data structure specifiedby the Netscape Application Programming Interface from NetscapeCommunications Corp.). The processed request is then sent to thediagnostic engine 224 of the Telnet server 190 of the modem 120 via anintrahost communication socket. The intrahost communication socket is acommunication protocol. In one embodiment, the intrahost socket is aUNIX domain socket. Alternatively, the socket may comprise other typesof known sockets (e.g., INET socket). Thus, the web server 222 functionsas a pass-through element that enables communication between therequesting device and the diagnostic engine 224.

The diagnostic engine 224 subsequently receives the processed data ofthe diagnostic request from the web server 222. The diagnostic engine224 functions to interpret the data within the diagnostic request. Thediagnostic engine 224 then invokes the test routines that are specifiedin the diagnostic request. In an alternate embodiment of the presentinvention, the diagnostic engine 224 can function intelligently todetermine which tests are to be invoked based on the informationcontained in the diagnostic request and based on the history informationof the ISS 130. The history information may include knowledge ofprevious troubleshooting experience and service topology information ofthe network system 100. The test routines performed by the diagnosticengine 224, when run, check various parts (including the servers andother components) of the clients 170, 180 in the PC 110 and the ISS 130,respectively, and the cable modem 120 itself, according to the Telnetprotocol.

The diagnostic engine 224 receives the test results from the executedtest routines and then correlates the test results to determine whichcomponents within the system are faulty or malfunctioning. The finaltest results are then sent to the requesting client for display via theweb server 222.

The operation of the modem 120 will now be described in more detail. Themodem of FIG. 1 and FIG. 2, in accordance with the principles of thepresent invention, is capable of supporting multiple Telnet sessions,wherein each task can be opened or closed independently. The operationof the modem 120 comprises two threads operating substantiallyconcurrently. In one embodiment of the present invention, a Telnetauthentication task in the modem 120 waits for a client to logon. When anew client attempts to connect, the authentication task requests for auser ID and a password required for the client to gain access to themodem 120. When the user ID and password are verified, the Telnetauthentication task opens a socket and saves the session information,such as the client IP address and a listening port number. Theauthentication task then again waits for a new client to logon. The sameauthentication procedure is followed for each client attempting to logonto the modem 120. If the number of clients reaches a maximum allowablenumber of clients, determined by the number of available slots that canbe provided by the modem 120, the authentication task will reject thenext new client.

Operating contemporaneously with the Telnet authentication task is aTelnet sending task. The Telnet sending task waits for the modem 120 togenerate the relevant information in response to a request from aclient. The generated information is then sent to all of the activeTelnet clients. If a specific send function fails (i.e., a send failurein a specific socket), the modem 120 assumes that the client is nolonger active (disconnected), and the Telnet sending task will makeavailable the particular client slot associated with the failed sendcommand to the next client attempting to logon. The authentication taskwhich manages the clients' logon procedure operates separate from thesending task. If a subsequent client attempts to log on while the Telnetserver 190 is sending information to the current clients, the subsequentclient is verified as described above and a request from the subsequentclient is serviced individually in a subsequent sending task. Thesending task will only send information to clients who were previouslyverified by the authentication task.

FIG. 3 depicts a flow diagram of an authentication method for providingmultiple Telnet sessions, simultaneously in accordance with theprinciples of the present invention. The method 300 is entered at step302 in which an authentication task of the Telnet server of the modemreceives a request from a client to logon. The method 300 then proceedsto step 304.

At step 304, the method 300 requests for a user ID and a passwordrequired for the client to gain access to the modem. The method 300 thenproceeds to step 306.

At step 306, the method 300 determines if the user ID and password arevalid. If the user ID and password are valid, the method 300 proceeds tostep 308. If the user ID and password are not valid, the method 300rejects the client's attempt to logon and the method 300 is exited.

At step 308, the method 300 determines if there is an open socketavailable for the requesting client. If there is a socket available forthe requesting client, the method 300 proceeds to step 310. If a socketis not available for the requesting client, the method 300 rejects theclient request and the method 300 is exited.

At step 310, the method 300 saves the session information such as, theclient IP address and the client receiving port number. The method 300then returns to step 302 to wait for a next Telnet client to log on.

FIG. 4 depicts a flow diagram of a sending method for providing multipleTelnet sessions simultaneously in accordance with the principles of thepresent invention. The sending method 400 operates substantiallyconcurrently with the authentication method 300. The method 400 isentered at step 402 in which a sending task of the Telnet server of themodem awaits for the modem to generate the relevant information to besent to the clients logged on. The method 400 then proceeds to step 404.

At step 404, the method 400 then communicates the generated informationto each of the active Telnet clients via a socket with the clientdestination IP address and receiving port number which were saved instep 310. The method 400 then proceeds to step 406.

At step 406, the method 400 determines if a send function failed to anyof the Telnet clients. If a send function failed, the method 400proceeds to step 408. If there were no send function failures, themethod 400 returns to step 402.

At step 408, the method 400 assumes that the client, associated with theslot wherein the send function failed, is no longer active(disconnected), and the sending task will make available the particularclient slot associated with the failed send command to the next clientattempting to logon. The method 400 then returns to step 402.

While the forgoing is directed to some embodiments of the presentinvention, other and further embodiments of the invention may be devisedwithout departing from the basic scope thereof. As such, the appropriatescope of the invention is to be determined according to the claims,which follow.

1. A method for supporting multiple diagnostic sessions in abi-directional communication device, said method comprising: receivingdiagnostic session requests from a plurality of requesters; verifyingidentification information for each of said requesters; establishing acommunications channel for each verified requester; and communicatingdiagnostic information corresponding to a particular one of thediagnostic session requests received from a particular one of saidverified requesters to all of said verified requesters via saidestablished communications channels, wherein said establishing acommunications channel further comprises saving session information suchas, a requester IP address and a requester receiving port number foreach of said verified requesters, and wherein the requested informationis communicated to each of said verified requesters via an availablesocket comprising the respective saved session information.
 2. Themethod of claim 1, further comprising: if communication of informationto a requester fails, making available, to a subsequent requester, thecommunications channel associated with the failed communication.
 3. Themethod of claim 1, wherein said identification information comprises auser ID and a password.
 4. The method of claim 1, wherein saidestablishing a communications channel comprises assigning an availablesocket for communication with each verified requester.
 5. The method ofclaim 4, further comprising rejecting subsequent requests after a totalnumber of available sockets has been assigned.
 6. An apparatus forsupporting multiple diagnostic sessions in a bi-directionalcommunication device, said apparatus comprising: a server; a memory forstoring program instructions; and a processor for executing saidinstructions to configure the apparatus to perform the steps of:receiving diagnostic session requests from a plurality of requesters;verifying identification information for each of said requesters;establishing a communications channel for each verified requester; andcommunicating diagnostic information corresponding to a particular oneof the diagnostic session requests received from a particular one ofsaid verified requesters to all of said verified requesters via saidestablished communications channels, wherein said establishing acommunications channel further comprises saving session information suchas, a requester IP address and a requester receiving port number foreach of said verified requesters, and wherein the requested informationis communicated to each of said verified requesters via an availablesocket comprising the respective saved session information.
 7. Theapparatus of claim 6, further configured to perform the step of: ifcommunication of information to a requester fails, making available, toa subsequent requester, the communications channel associated with thefailed communication.
 8. The apparatus of claim 6, further configured toperform the steps of: rejecting subsequent requests after a total numberof available sockets has been assigned.
 9. The apparatus of claim 6,wherein said establishing a communications channel comprises assigningan available socket for communication with each verified requester. 10.The apparatus of claim 9, wherein said assigned sockets comprise arequester IP address and a requester receiving port number.
 11. Theapparatus of claim 6, wherein said plurality of requesters compriseTelnet clients.
 12. The apparatus of claim 6, wherein said plurality ofrequesters are network devices.
 13. The apparatus of claim 6, whereinsaid server comprises: a web server for enabling communication between arequesting device and a diagnostic engine; and said diagnostic enginefor performing the routines that are specified in each of said requests.14. The apparatus of claim 6, wherein said apparatus comprises a modem.15. An apparatus for supporting multiple Telnet sessions, comprising:means for receiving Telnet session requests from a plurality ofrequesters; means for verifying identification information for each ofsaid requesters; means for establishing a communications channel foreach verified requester; and means for communicating diagnosticinformation corresponding to a particular one of the diagnostic sessionrequests received from a particular one of said verified requesters toall of said verified requesters via said established communicationschannels, wherein said establishing a communications channel furthercomprises saving session information such as, a requester IP address anda requester receiving port number for each of said verified requesters,and wherein the requested information is communicated to each of saidverified requesters via an available socket comprising the respectivesaved session information.
 16. Computer-readable medium for storing aset of instructions, wherein when said set of instructions is executedby a processor perform a method comprising: receiving Telnet sessionrequests from a plurality of requesters; verifying identificationinformation for each of said requesters; establishing a communicationschannel for each verified requester; and communicating diagnosticinformation corresponding to a particular one of the diagnostic sessionrequests received from a particular one of said verified requesters toall of said verified requesters via said established communicationschannels, wherein said establishing a communications channel furthercomprises saving session information such as, a requester IP address anda requester receiving port number for each of said verified requesters,and wherein the requested information is communicated to each of saidverified requesters via an available socket comprising the respectivesaved session information.
 17. A network comprising: at least onesubscriber terminal comprising a Telnet client for initiating Telnetsession requests; at least one data servicing system comprising a Telnetclient for initiating Telnet session requests; and a network devicecomprising: a Telnet server; a memory for storing program instructions;and a processor for executing said instructions to configure saidnetwork device to perform the steps of: receiving Telnet sessionrequests from said at least one subscriber terminal and said at leastone data servicing system; verifying identification information for eachof said requesters; establishing a communications channel for eachverified requester; and communicating diagnostic informationcorresponding to a particular one of the diagnostic session requestsreceived from a particular one of said verified requesters to all ofsaid verified requesters via said established communications channels,wherein said establishing a communications channel further comprisessaving session information such as, a requester IP address and arequester receiving port number for each of said verified requesters,and wherein the requested information is communicated to each of saidverified requesters via an available socket comprising the respectivesaved session information.
 18. The network of claim 17, wherein saidnetwork device is further configured to perform the step of: ifcommunication of information to a requester fails, making available, toa subsequent requester, the communications channel associated with thefailed communication.